Dry run algorithm